package Day02;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;

/**
 * 高精度加法
 * C = A + B
 */
public class Add {

    public static ArrayList<Integer> add(ArrayList<Integer> A, ArrayList<Integer> B) {
        ArrayList<Integer> res = new ArrayList<>();
        for (int i = 0; i < A.size() || i < B.size(); i++) {
            // 用t来表示存进去的值
            int t = 0;
            if (i < A.size()) {
                t += A.get(i);
            }
            if (i < B.size()) {
                t += B.get(i);
            }
            res.add(t % 10);
            t /= 10;
        }
        return res;
    }


    public static void main(String[] args) {
        String a = "178";
        String b = "7878";
        ArrayList<Integer> A = new ArrayList<>();
        ArrayList<Integer> B = new ArrayList<>();
        ArrayList<Integer> res = new ArrayList<>();
        for (int i = a.length() - 1; i >= 0; i--) {
            A.add(a.charAt(i) - '0');
        }
        for (int i = b.length() - 1; i >= 0; i--) {
            B.add(b.charAt(i) - '0');
        }
        res = add(A, B);
        Collections.reverse(res);
        for (int i = 0; i < res.size(); i++) {
            System.out.print(res.get(i));
        }
    }
}
